אני רוצה שהוא יקח את כל הזה, יוסיף מסביבו span, ואת כל מה שהוא מוצא בתוך הסוגריים שישים שם עוד span, הבנתי איך למצוא את זה אבל איך אני מוסיף בנוסף לקיים משהו?
14 תשובות
@vu47678 יכול להיות שהגבת לפני העריכה אבל מאיפה הבאת את ה $1? אפשר הסבר מפורט על זה?
ה $1 זה מה שמוחזר לך מהערך שאתה מציב בסוגריים בפרמטר הראשון שהפונקציה מקבלת, במקרה זה עשיתי הכל כפי שאתה רואה, אבל אתה יכול לעשות איזה ביטויים שאתה רוצה,
ואז אתה יכול להכניס את הערך הזה לפרמטר השני.
אז מה שעשיתי פה לקחתי את כל הביטוי ושמתי אותו בתוך תגית H1.
$string = preg_replace("#(.+)#", "<h1>\\1</h1>", $v);
קוד יותר טוב, אם תפעיל את הקוד שלך @vu47678 הוא יעטוף את מה שנתת לו בתגית אבל גם אחרי יפתח ויסגור את התגית בלי כלום בפנים.
(שים לב שהשתמשת בכוכבית ולא פלוס).
(\\1 - שווה ל$1).
יש לי שאלה, ואם אני רוצה לחפש משהו שלפני netanel יהיה לי למשל My name אבל שהוא לא ישים את זה ב H1, איך אני עושה את זה? אני שם את זה מחוץ לסוגריים?
$string = preg_replace("#my name (.+)#", "my name <h1>\\1</h1>", $v);
הפונקציה שומרת רק מה שבתוך סוגריים, אם הייתי מוסיף סוגריים נוספות אחריי הייתי קורא למה שבפנים כ//2.
יש לי את הקוד הזה:
$lines = file('files/txt/settings.txt');
$name = 'DatabaseUsername';
foreach ($lines as $line) {
echo $line.'<br />';
if(preg_replace("#$name = '(.+)'#", $line)) {
$nline = preg_replace("#$name = '(.+)'#", "My name is <h1>\\1</h1>", $line);
echo $nline.'<br />';
}
}
ואת הקובץ הזה:
DatabasePassword = '1234'
DatabaseName = 'yotam'
DatabaseServer = 'localhost'
הפלט אמור להיות ככה:
my name is <h1>yotam</h1>
DatabasePassword = '1234'
DatabaseName = 'yotam'
DatabaseServer = 'localhost'
אתה יודע אולי מה לא נכון כאן?
אני לא מבין את המטרה של הIF שלך, אתה כנראה מתכוון לעשות חיפוש אם "#$name = '(.+)'#" נמצא במחרוזת, במקרה הזה הקוד שלך צריך להיות:
$name = 'DatabaseUsername';
foreach ($lines as $line) {
echo $line.'<br />';
if(preg_match("#$name = '(.+)'#", $line)) {
$nline = preg_replace("#$name = '(.+)'#", "My name is <h1>\\1</h1>", $line);
echo $nline.'<br />';
}
}
אני נאלץ לעבוד עם JS מכמה סיבות, אךי אני עושה את אותו הקוד בדיוק בJS? ראיתי שיש אפשרות של replace אבל לא הבנתי איך אני משתמש שם במשתנים
אתה רושם את שם המשתנה, ואז נקודה, ואז replace:
alert(str.replace("\W", "<h1>\\1</h1>"));
הקוד הזה:
alert(str.replace("#my Name is (.*)#i", "\\1"));
לא עובד לי, הוא עדיין עושה alert לכל הטקסט